/* The file is saved in UTF-8 codepage.
 * Check: «Stereotype», Section mark-§, Copyright-©, Alpha-α, Beta-β, Smile-☺
 */
package cz.pecinovsky.english.lootp.manager;
/*******************************************************************************
 *<pre>
 * Předchozí: Ellipse v balíčku tvary_04_další_rozhraní
 *
 * Přidáno:
 *    - Metoda {@link nakresli(Kreslítko)}
 *    - Atribut třídy {@link CM} odkazující na správce plátna
 * Upraveno:
 *    - Převedena pod {@link SprávcePlátna}
 *      - Upravena metoda {@code nakresli}
 *      - Implicitní velikost kroku je odvozena od kroku správce plátna
 *      - Meotdy {@link nakresli()} a {@link smaž()} nyní
 *        přihlašují a odhlašují instanci u správce plátna
 *</pre>
 */


////////////////////////////////////////////////////////////////////////////////
//%%+  +++++ End of ignored starting test - place for imports +++++


/*******************************************************************************
 * Rozhraní IAdaptable je určeno pro instance, které chtějí být schopny
 * reagovat na velikosti kroku a tím i políčka aktivního plátna.
 * Kdykoliv se změní velikost pole aktivního plátna, plátno to oznámí
 * všem přihlášeným přizpůsobivým posluchačům.
 *
 * @author Rudolf PECINOVSKÝ
 * @version 6.03.2017 — 2010-11-08
 */
public interface IAdaptable
{
//== CONSTANTS =================================================================
//== PŘÍSTUPOVÉ METODY ATRIBUTŮ INSTANCÍ =======================================
//== OSTATNÍ METODY INSTANCÍ ===================================================

    /***************************************************************************
     * Přihlásí-li se instance u správce plátna
     * jako přizpůsobivý posluchač, zavolá aktivní plátno tuto její metodu
     * po každé změně kroku a tím i velikosti jeho pole.<br>
     * Při přizpůsobování se novému rozměru plátna je třeba změnit velikosti
     * souřadnic i rozměrů objektu v poměru
     * <b><code>((double)nový&nbsp;/&nbsp;starý)</code></b>.
     * Doporučený kód je proto:<pre>{@code
     * public void stepChanged(int starý, int nový)
     * {
     *    double poměr = (double)nový / starý;
     *    Pozice p = getPozice();
     *    Rozměr r = getRozměr();
     *    int x = (int)(p.x     * poměr);
     *    int y = (int)(p.y     * poměr);
     *    int s = (int)(r.šířka * poměr);
     *    int v = (int)(r.výška * poměr);
     *    setPozice(x, y);
     *    setRozměr(s, v);
     * }}</pre>
     *
     * @param oldSize  Původní velikost kroku.
     * @param newSize  Nově nastavená velikost kroku.
     */
//     @Override
    public void stepChanged(int oldSize, int newSize);


//== VNOŘENÉ TŘÍDY =============================================================
}
